package org.lanyu.springainovel.novel.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.util.Date;

/**
 * 拆书记录实体类（合并了项目和任务信息�? */
@Data
@TableName("book_analysis_record")
public class BookAnalysisRecord {

    /**
     * 记录ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 用户ID
     */
    @TableField("user_id")
    private Long userId;

    /**
     * 记录名称（书名）
     */
    private String name;

    /**
     * 状�?(PENDING: 待处�? PROCESSING: 处理�? COMPLETED: 已完�? FAILED: 失败)
     * 必须使用以下值之一，与数据库ENUM定义匹配
     */
    private String status;

    /**
     * 进度百分�?     */
    private Integer progress;

    /**
     * 原始内容来源类型 (FILE, URL)
     */
    @TableField("source_type")
    private String sourceType;

    /**
     * 原始内容路径（文件上传后的路径）
     */
    @TableField("source_path")
    private String sourcePath;

    /**
     * 原始内容URL
     */
    @TableField("source_url")
    private String sourceUrl;

    /**
     * 系统提示词模板ID
     */
    @TableField("system_prompt_id")
    private Long systemPromptId;

    /**
     * 模型ID
     */
    @TableField("model_id")
    private Long modelId;
    
    /**
     * 用户提示�?     */
    @TableField("user_prompt")
    private String userPrompt;

    /**
     * 开始时�?     */
    @TableField("start_time")
    private Date startTime;

    /**
     * 结束时间
     */
    @TableField("end_time")
    private Date endTime;

    /**
     * 错误信息
     */
    @TableField("error_message")
    private String errorMessage;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private Date updateTime;
}
